Springboot 项目整合集成 xxl

您所在的位置:网站首页 springboot job Springboot 项目整合集成 xxl

Springboot 项目整合集成 xxl

#Springboot 项目整合集成 xxl| 来源: 网络整理| 查看: 265

        XXL-JOB 是一个开源的、轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。项目github下载地址 点击查看 ,项目使用文档点击查看   

 首先我们去github 或者 码云 上下载最新的  xxl-job的代码   不同版本的具体继承配置不太相同

调度数据库初始化SQL脚本,脚本位置 /xxl-job/doc/db/tables_xxl_job.sql ,导入到我们的数据库中,会自行创建一个xxl-job的库,这个可以自行更改,导入你本地的数据库也行,然后将项目导入本地开发工具中,更改你数据库的地址,用户名,密码

点击运行xxl-job-admin 启动项目,项目登录默认的用户名密码 admin/123456

到此我们完成了第一步,接下来我们在自己的springboot上整合一下,首先在项目的pom文件中加入依赖

com.xuxueli xxl-job-core 2.1.0

然后在项目的 application.properties 配置文件中加入

server.port=8088 ### xxl-job 的访问地址 xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin ### xxl-job 的appname ip不填代表本机 xxl.job.executor.appname=plat-job xxl.job.executor.ip= xxl.job.executor.port=8087 ### xxl-job, access token xxl.job.accessToken= ### xxl-job log path xxl.job.executor.logpath=E:/applogs/ ### xxl-job log retention days xxl.job.executor.logretentiondays=-1

配置 XxlJobConfig 

package com.example.mycloud.config; import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration //指定任务Handler所在包路径 @ComponentScan(basePackages = "com.example.mycloud.job") public class XxlJobConfig { private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class); @Value("${xxl.job.admin.addresses}") private String adminAddresses; @Value("${xxl.job.executor.appname}") private String appName; @Value("${xxl.job.executor.ip}") private String ip; @Value("${xxl.job.executor.port}") private int port; @Value("${xxl.job.accessToken}") private String accessToken; @Value("${xxl.job.executor.logpath}") private String logPath; @Value("${xxl.job.executor.logretentiondays}") private int logRetentionDays; @Bean(initMethod = "start", destroyMethod = "destroy") public XxlJobSpringExecutor xxlJobExecutor() { logger.info("====xxl-job config init===="); XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); xxlJobSpringExecutor.setAdminAddresses(adminAddresses); xxlJobSpringExecutor.setAppName(appName); xxlJobSpringExecutor.setIp(ip); xxlJobSpringExecutor.setPort(port); xxlJobSpringExecutor.setAccessToken(accessToken); xxlJobSpringExecutor.setLogPath(logPath); xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays); return xxlJobSpringExecutor; } }

写个测试任务

package com.ruoyi.project.job; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.handler.IJobHandler; import com.xxl.job.core.handler.annotation.JobHandler; import org.springframework.stereotype.Component; @JobHandler(value="TestHandler") @Component public class TestHandler extends IJobHandler { @Override public ReturnT execute(String param) throws Exception { System.out.println("测试job的输入参数:"+param); return SUCCESS; } }

然后启动你的springboot项目,然后在 xxl-job admin 中配置相应的信息,首先配置执行器,就是你配置文件的 appname, 名称 排序随便取,注册方式自动就行,这样xxl-job 就可以根据你appname找到相应的项目去执行定时任务

添加完执行管理器之后,我们添加刚测试的定时job ,执行器选择你刚刚新增的那个名字,路由策略,如果你同一个项目部署多台,可根据下拉选项选择不同的路由策略

点击保存之后界面如图,要在你的执行器下找,不然会找不到,点击执行是立即执行一次,启动是开始按照 cron的规则去运行

启动你的springboot项目,点击执行,看控制台输出,点击上图的日志,可以查看定时任务是否运行成功

这里我们就完成了springboot项目整合 xxl-job  了,主要注意几点,一,执行数据库脚本,启动你的 xxl-job 项目。二 ,在你的springboot项目中添加依赖,配置 xxl-job-admin 的地址。 三,在xxl-job=admin 中配置你的执行器,这里注意,同一个名称的执行器端口不能相同。

springboot的具体继承配置在项目中有代码示例的,不用版本配置 使用不太相同,以官方最新版本 demo 为主

另外写一下个人想法,定时任务工程是单独的,里面不要掺杂其他的业务代码,单独起一个定时任务的项目,如果我们需要操作不同的数据库,这里之前也写过 springboot 多数据源配置,点击即可参考 ,



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3